const homedir = require('os').homedir(); //获取用户的home目录
//获取系统的home目录 //获取变量 //如果home目录修改过的话，比如home放在了D盘，直接获取用户的home目录，获取的是c盘的，我们需要拿到系统的home变量
const home = process.env.HOME || homedir  //优先使用用户设置的home，否则使用默认的
const p = require('path') //nodejs提供的方法 专门用来拼接路径的
const dbPath = p.join(home, '.todo') //会自动加上\或者反斜杠
const fs = require('fs')

const db = {
  read(path = dbPath) {
    return new Promise((resolve, reject) => {
      fs.readFile(path, {flag: 'a+'}, (error, data) => {
        if (error) {
          return reject(error)
        }
        let list
        try {
          list = JSON.parse(data.toString())
        } catch (error2) {
          list = []
        }
        resolve(list)
      })
    })

  },
  write(list, path = dbPath) {
    return new Promise((resolve, reject) => {
      const string = JSON.stringify(list)//转成字符串
      //然后把字符串存到文件里面 加上"\n" 回车
      fs.writeFile(path, string + '\n', (error) => {
        if (error) {
          return reject(error)
        }
        resolve()
      })
    })
  }
}
module.exports = db  //module.exports是nodejs的导出方法
